# 定义一个名片盒子
cards = [
    {'name': '张飞', 'job': "CEO", 'company': '张飞牛肉', 'tel': 13888888888, 'addr': '天府新谷'},
    {'name': '关羽', 'job': "CFO", 'company': '张飞牛肉', 'tel': 13999999999, 'addr': '天府新谷'},
    {'name': '刘备', 'job': "CTO", 'company': '张飞牛肉', 'tel': 13666666666, 'addr': '天府新谷'}
]


def info():
    # 打印功能列表
    print("""1. 添加名片
           \r2. 展示所有名片
           \r3. 搜索名片
           \r4. 修改名片
           \r5. 删除名片
           \r0. 退出""")


def collect():
    """
    收集用户的输入信息
    :return: 一个名片字典
    """
    name = input("姓名：")
    job = input("职位：")
    company = input("公司名：")
    tel = input("电话：")
    addr = input("地址：")
    card = {'name': name, 'job': job, 'company': company, 'tel': int(tel), 'addr': addr}
    return card


def print_card(card):
    # 根据传入的名片字典，打印这个名片
    values = list(card.values())
    # 分别赋值给这些变量
    name, job, company, tel, addr = values
    print(f"""
        \r**************************************
        \r姓名：{name}\t\t\t职位：{job}
        \r电话：{tel}\t公司：{company}
        \r地址：{addr}
        \r**************************************""")


# 定义初始变量
status = "first"
operation = '0'
# 功能模块
while True:
    # 根据情况选择打印不同的欢迎语以及输入提示语
    if status == "first":
        print("欢迎来到名片盒子，您可以：")
        info()
        operation = input("请输入对应的数字以选择要进行的操作：")
    elif status == "reenter":
        print("欢迎回到名片盒子，您可以：")
        info()
        operation = input("请重新输入正确的数字以选择要进行的操作：")
    # 都不是，那就是return
    else:
        print("欢迎回到名片盒子，您可以：")
        info()
        operation = input("请继续输入对应的数字以选择要进行的操作：")

    # 添加名片
    if operation == '1':
        print("正在进行添加名片，请输入以下信息：")
        new_card = collect()
        cards.append(new_card)
        print(f"[{new_card.get('name')}]的个人名片添加成功！")
    # 展示所有名片
    elif operation == '2':
        print("正在展示所有名片：")
        for card in cards:
            print_card(card)
        print("\n已展示所有名片 ^_^")
    # 搜索名片
    elif operation == '3':
        find_name = input("请输入您想搜索的人：")
        for card in cards:
            if find_name == card.get("name"):
                print("找到啦！在这：")
                print_card(card)
                break
        else:
            print(f"很抱歉，没有找到[{find_name}]的名片 T_T")
    # 修改名片
    elif operation == '4':
        modify_name = input("请输入您要修改的名片姓名：")
        for card in cards:
            # 判断name对应的值是否为用户输入内容
            if modify_name == card.get("name"):
                # 找到这个人后，输出他的名片
                print("找到啦！请输入以下新的信息：")
                modify_card = collect()
                i = cards.index(card)
                cards[i] = modify_card
                print("修改完成！^_^")
                break
        else:
            print(f"很抱歉，没有找到[{modify_name}]的名片 T_T")
    # 删除名片
    elif operation == '5':
        delete_name = input("请输入您想要删除的名片姓名：")
        for card in cards:
            # 判断name对应的值是否为用户输入内容
            if delete_name == card.get("name"):
                # 找到这个人后，输出他的名片
                print("找到啦！")
                # 这里还可以打印这个人的名片
                # 询问确认是否要删除他的名片
                pass
                cards.remove(card)
                print(f"已删除[{delete_name}]的名片信息！")
                break
            else:
                print(f"很抱歉，没有找到[{delete_name}]的名片 T_T")
    # 退出
    elif operation == '0':
        print("已退出，期待您的下次使用！^_^")
        break
    else:
        print("您输入的数据不对哦! T_T")
        print('-' * 21)
        status = "reenter"
        continue
    print('-' * 21)
    status = "return"
